package com.fowo.api.model.adjustment.order.product;

import com.alibaba.excel.annotation.ExcelIgnore;
import com.alibaba.excel.annotation.ExcelProperty;
import com.fowo.api.common.validator.*;
import io.swagger.v3.oas.annotations.media.Schema;
import javax.validation.constraints.*;
import lombok.Getter;
import lombok.Setter;

/**
 * 调整单子表 预览导入辅助模型(全字段为文本类型)
 * @author yl_ls
 */
@Getter
@Setter
public class AdjustmentOrderProductImportPo {

  /** 所属调整单 */
  @ExcelProperty("所属调整单")
  private String parentAdjustmentOrderOrderSn;

  @ExcelIgnore
  @Schema(title = "所属调整单")
  private String parentAdjustmentOrder;

  /** 产品 */
  @ExcelProperty("产品")
  @Size(max = 200, message = "产品长度不能超过200")
  private String product;

  /** 品名 */
  @ExcelProperty("品名")
  @Size(max = 500, message = "品名长度不能超过500")
  private String prdNameName;

  @ExcelIgnore
  @Schema(title = "品名")
  private String prdName;

  /** SKU */
  @ExcelProperty("SKU")
  @Size(max = 50, message = "SKU长度不能超过50")
  private String sku;

  /** 产品标签 */
  @ExcelProperty("产品标签")
  @Size(max = 50, message = "产品标签长度不能超过50")
  private String prdLabel;

  /** 店铺 */
  @ExcelProperty("店铺")
  @Size(max = 50, message = "店铺长度不能超过50")
  private String shopShopName;

  @ExcelIgnore
  @Schema(title = "店铺")
  private String shop;

  /** FNSKU */
  @ExcelProperty("FNSKU")
  @Size(max = 50, message = "FNSKU长度不能超过50")
  private String fnskuFnsku;

  @ExcelIgnore
  @Schema(title = "FNSKU")
  private String fnsku;

  /** 新品名 */
  @ExcelProperty("新品名")
  @Size(max = 500, message = "新品名长度不能超过500")
  private String newPrdNameName;

  @ExcelIgnore
  @Schema(title = "新品名")
  private String newPrdName;

  /** 新SKU */
  @ExcelProperty("新SKU")
  @Size(max = 50, message = "新SKU长度不能超过50")
  private String newSku;

  /** 新店铺 */
  @ExcelProperty("新店铺")
  @Size(max = 50, message = "新店铺长度不能超过50")
  private String newShopShopName;

  @ExcelIgnore
  @Schema(title = "新店铺")
  private String newShop;

  /** 新FNSKU */
  @ExcelProperty("新FNSKU")
  @Size(max = 50, message = "新FNSKU长度不能超过50")
  private String newFnskuFnsku;

  @ExcelIgnore
  @Schema(title = "新FNSKU")
  private String newFnsku;

  /** 可用量 */
  @ExcelProperty("可用量")
  @LongString(message = "可用量数值格式不正确", label = "可用量")
  private String availbleNum;

  /** 新可用量 */
  @ExcelProperty("新可用量")
  @LongString(message = "新可用量数值格式不正确", label = "新可用量")
  private String newAvailbleNum;

  /** 可用调整量 */
  @ExcelProperty("可用调整量")
  @LongString(
    message = "可用调整量数值格式不正确",
    label = "可用调整量",
    min = 0L
  )
  private String goodAdjustNum;

  /** 次品量 */
  @ExcelProperty("次品量")
  @LongString(message = "次品量数值格式不正确", label = "次品量")
  private String defectiveQuantity;

  /** 次品调整量 */
  @ExcelProperty("次品调整量")
  @LongString(
    message = "次品调整量数值格式不正确",
    label = "次品调整量",
    min = 0L
  )
  private String badAdjustNum;

  /** 调整量 */
  @ExcelProperty("调整量")
  @LongString(message = "调整量数值格式不正确", label = "调整量", min = 0L)
  private String adjustmentAmount;

  /** 出库仓位 */
  @ExcelProperty("出库仓位")
  @Size(max = 50, message = "出库仓位长度不能超过50")
  private String goodWarehouseBinStorageBin;

  @ExcelIgnore
  @Schema(title = "出库仓位")
  private String goodWarehouseBin;

  /** 次品仓位 */
  @ExcelProperty("次品仓位")
  @Size(max = 50, message = "次品仓位长度不能超过50")
  private String badWarehouseBinStorageBin;

  @ExcelIgnore
  @Schema(title = "次品仓位")
  private String badWarehouseBin;

  /** 入库仓位 */
  @ExcelProperty("入库仓位")
  @Size(max = 50, message = "入库仓位长度不能超过50")
  private String newGoodWhbStorageBin;

  @ExcelIgnore
  @Schema(title = "入库仓位")
  private String newGoodWhb;

  /** 新次品仓位 */
  @ExcelProperty("新次品仓位")
  @Size(max = 50, message = "新次品仓位长度不能超过50")
  private String newBadWhbStorageBin;

  @ExcelIgnore
  @Schema(title = "新次品仓位")
  private String newBadWhb;

  /** 备注 */
  @ExcelProperty("备注")
  @Size(max = 50, message = "备注长度不能超过50")
  private String remark;

  /** 库存 */
  @ExcelProperty("库存")
  @LongString(message = "库存数值格式不正确", label = "库存")
  private String inventoryIdId;

  @ExcelIgnore
  @Schema(title = "库存")
  private String inventoryId;

  /** fnsku名称 */
  @ExcelProperty("fnsku名称")
  @Size(max = 500, message = "fnsku名称长度不能超过500")
  private String fnskuName;

  /** 新Fnsku名称 */
  @ExcelProperty("新Fnsku名称")
  @Size(max = 500, message = "新Fnsku名称长度不能超过500")
  private String newFnskuName;
}
